perm filename KSIG.OLD[NEW,LCS] blob sn#322688 filedate 1978-01-05 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE KSIG   	00100	      SUBROUTINE KSIG
C00029 ENDMK
CāŠ—;
	TITLE KSIG   ;	00100	      SUBROUTINE KSIG
	ENTRY KSIG,METER,MAKNUM
	EXTERNAL NOZERO,.COMM.,ITMSUB,POSI,NFONT
	EXTERNAL ALPHA,IFIX,STF,AMOD,CENTX,CIRCLE,NOTWRT,CENTX
KSIG:	0	;   FOR KEY SIGNATURES AND ACCENTS, ETC. (IN 'SCORE')
;00300	      COMMON R2,JA,CENTR,J2,RJQ(20),JQ(17),T,Z,H/STF/RSTFAC(-3/4),RSTJ2
;00400	C*******************;;;; Z WIPED OUT IN NOTWRT!!! BE CAREFUL WITH S!!!
;00500	      EQUIVALENCE (R4,RJQ(2)),(J4,JQ(2)),(J5,JQ(3)),(J6,JQ(4))
;00600	     1,(R6,RJQ(4))
      	MOVEI 	02,11			; JA=9
      	MOVEM 	2,.COMM.+1  ;		C  USES THIS KEY NUM IN NOTWRT
;				COUNTER --    IZ=IABS(J5)
	MOVM 15,.COMM.+=26      ;  NUMBER OF CALLS ON NOTWRT
;			01300	C  THE CLEF NUM.  IT GETS WIPED OUT IN NOTWRT.
;				01400	      JW=1
      	MOVEI 	2,1    ;	01500	      R6=0
      	SETZM 	METER   ; SIZE FACT. 1600   IF(J5.GT.0)JW=2
	SKIPLE .COMM.+=26
	AOS 2      	;	01700	C   THE CODE FOR FLAT OR SHARP
	CAIGE 15,144	;	01800	      IF(IZ.LT.100)GO TO 5333
      	JRST  	KS1 
	MOVEI 2,3		;	01900	      JW=3
	SUBI 15,144	;	02000	      IZ=IZ-100
;                 2100	WILL MAKE NATURALS IF 100 IS ADDED OR SUBTRACTED.
KS1:	MOVEM 2,JW#	;	02200	5333  CLEF=J6+1
	MOVE 3,.COMM.+=27
	IDIVI 3,=100	;CLEF #S ARE 0,1,2,3 (TREB.,BA.,ALT.,TEN.)
	MOVEM 4,CLEF#
; AC4 NOW HAS CLEF NUM.		02400	C  CLEF NOW SET IN MAIN PROG.
;				02500	C  IF NO CLEF GIVEN, TREBLE IS USED.
;				02600	      T=10.
	JUMPE 3,.+3		;IF(CLEF.GE.100)R6=.8    MINIS
	MOVE 3,[0.8]
	MOVEM 3,METER		; METER STORES SIZE FACTOR
      	MOVSI 	13,204500	; 13 IS T
	CAILE 4,1		;2700	      IF(CLEF.GT.1.)T=11.
      	MOVSI 	13,204540
	MOVEM 13,T#
	CAIN 4,3
	JRST KSX
	MOVNI 2,(4)		;	02800	      S=3-CLEF
	ADDI 2,3
	SKIPA
KSX:	SETO 2, 	     ;		02900	      IF(CLEF.EQ.3)S=-1.
	FLTR 2,2		;TLC 2,232000
;;	FADR 2,2
	MOVEM 2,S#     ;	03000	      IF(J5.LT.0)GO TO 253
      	MOVE  	02,.COMM.+=26    
      	JUMPL 	02,KS2     ;	03100	      W=-3.
      	MOVN  	02,[3.0]   ;	03200	      YY=4.
      	MOVSI 	3,203400   ;	03300	      Z=11.
      	MOVSI 	4,204540    ;	03400	C  SHARPS
;				03500	      GO TO 353
      	JRST  	KS3     ;	03600	253   W=-4
KS2: 	MOVN 2,[4.0]    ;	03700	      YY=3.
      	MOVSI 3,202600   ;	03800	      Z=7.
      	MOVSI 	4,203700  ;	03900	C  FLATS
KS3:	MOVEM 2,W#        ;		04000	353   N=-1
	MOVEM 3,YY#
	SETOM N#
	FADR 4,.COMM.+5		;4100	      Z=Z+R4
	MOVE .COMM.+4		;RX=R3
	MOVEM RX#
;				04300	      RA=0
      	SETZM 	RA#
;	04400	C   RA IS AMOUNT TO BE ADDED TO ORIGINAL POS.
	MOVSI 204640
	FMPR STF+=8
	SKIPE METER		;IF(METER.NE.0) *METER
	FMPR METER
	MOVEM .COMM.+=27	; SAVES IT IN J6
	MOVEM 15,IZ#   ;	04500	      DO 553 KA=1,IZ
      	MOVEI 	15,1   ;	04600	      J5=JW
KS6:  	MOVE  	02,JW    
      	MOVEM 	02,.COMM.+=26    ;04700	      R3=RX+RA
      	MOVE  	02,RX
      	FADR  	02,RA    
      	MOVEM 	02,.COMM.+4   ;	04800	      RA=RA+13.*RSTJ2
      	MOVE  	02,.COMM.+=27
      	FADRM 	02,RA    ;	04900	C  MOVES OVER FOR NEXT ACCI.
	MOVE 2, METER ;GET SIZE		05000	      RD=Z
	MOVEM 2,.COMM.+7	;R6=METER
      	MOVEM 	4,RD#		;05100	      R4=Z
      	MOVEM 	4,.COMM.+5    
	SKIPE CLEF	;	05200	      IF(CLEF.NE.0)GO TO 7
      	JRST  	KS7    
 	CAMG 4,[12.0]		;5300	      IF(R4.GT.12.)R4=R4-7.
      	JRST KS9
	JRST KS9-2
;;      	MOVN  	02,[7.0]
;;      	FADRM 	02,.COMM.+5    ;05400	      GO TO 9
;;      	JRST  	KS9    ;	05500	7     R4=R4-S
KS7:   	MOVN  	02,S     
      	FADRB 	02,.COMM.+5    
	CAMG 2,T	;	05600	      IF(R4.GT.T)R4=R4-7.
	JRST KS9
      	MOVN  	02,[7.0]
      	FADRM 	02,.COMM.+5  ;5700   ABOVE ARRANGES VERT. POS OF ACCIS.
;				05800	9     J4=R4
;;KS9:   	JSA   	16,IFIX  
;;	JUMP .COMM.+5
KS9:	KIFIX 0,.COMM.+5
      	MOVEM 	00,.COMM.+=25  ;FOR VERT. POS. IN 'DRWNT' (WHEN PLOTTING.)
      	JSA   	16,CENTX 
      	JSA   	16,NOTWRT    ;		06200	      Z=RD+W
      	MOVE  	4,W     
	SKIPG N        ;	06300	      IF(N.GT.0)Z=RD+YY
      	MOVE  	4,YY    	; N WAS -1 1ST TIME.
      	FADR  	4,RD    ;	06400	553   N=-N
  	MOVNS 	00,N     
      	CAMGE 	15,IZ    
      	AOJA  	15,KS6
	JRA 16,(16)  ;		06500	      END

METER:	0			;24300	      SUBROUTINE METER
      	JSA   	16,NOZERO   ;	25100	      CALL NOZERO(R7)
      	JUMP .COMM.+=8    ;	25200	      JZ=J3
	SETZM KSIG		;FLAG FOR DOUBLE METERS 3/4+5/8 ETC.
	SKIPN 2,.COMM.+=9	;IF(R8.EQ.0)GO TO MT1
	JRST MT1
	MOVEM 2,RD8#		;SAVE R8 IN RD8
	SETZM .COMM.+=9		;R8=0
	MOVE .COMM.+=8		;RD7=R7   SIZE
	MOVEM RD7#
	MOVE .COMM.+4		;RD3=R3
	MOVEM RD3#
	MOVE .COMM.+2		;CENTD=CENTR
	MOVEM CENTD#
	SETOM KSIG		; SET FLAG TO -1
	MOVE .COMM.+5		;SAVE R4 IN RD4
	MOVEM RD4#
	MOVE 2,[12.0]		;POS FOR PLUS SIGN
	MOVE 3,[19.0]		;POS FOR 2ND METER
	MOVE .COMM.+=27		;IF(J6 .GE. 10)INCREASE SPACE.
	CAIGE =10
	JRST MT6
	FADR 2,[5.0]
	FADR 3,[5.0]
MT6:	SKIPN 1,.COMM.+=11	;IF(R10.EQ.0)R10=1
	MOVE 1,[1.0]
	SKIPN 4,.COMM.+=12	;IF(R11.EQ.0)R11=R10 
	MOVE 4,1		;R10 MOVES +, R11 MOVES 2ND METER
	FMPR 2,1
	FMPR 3,4   ;P10, P11 CAN CHANGE SPREAD BETWEEN METERS
	MOVEM 2,PLUS#
	MOVEM 3,METR2#
	SETZM .COMM.+=12	;R11 MUST =0 FOR OTHER PLACES
MT1:  	MOVE  	02,.COMM.+=24    
      	MOVEM 	02,JZ#   ;	25300	      RY=R4+8.*.COMM.+=8
      	MOVE  	02,.COMM.+=8    
	SKIPE 3,.COMM.+6;IF TOP NUM=0, SINGLE METER. MOVE DN 1.2--P5=TOP NUM
	JRST SINGL
	FADR 2,[0.25]
	MOVEM 2,.COMM.+=8		;INCREASE SIZE(1.25) FOR SINGLE METER.
	MOVE [0.7]
	FADRM .COMM.+5
SINGL:	FSC   	02,3
      	FADRB	02,.COMM.+5    
;	FADR 2,[2.0]		;ADD 2 TO RAISE IT
	MOVEM 	02,RY#   ;	26300	      R4=RY        HEIGHT
      	MOVE  	 1,.COMM.+7    ;25500	      RW=R6
      	MOVEM 	 1,RW#   ;	25600	C  BOTTOM NUM
      	MOVE  	02,.COMM.+=8    ;25800	      R6=.COMM.+=8
      	MOVEM 	02,.COMM.+7    ;25900	      RR6=R6
      	MOVEM 	02,RR6#  ;	26000	C  SIZE     FOR BDR40  -- OR =1
;				26200	      M=0
      	SETZM 	M#    ;		26400	2     .COMM.+=8=0
;;	JUMPG 3,MT2		;IF(R6.NE.0)GO TO MT2
;;	MOVE [1.9]
;;	FADRM .COMM.+5		;R4=R4+2
MT2:  	SETZM 	.COMM.+=8    ;  .COMM.+=8=0 FOR BDR FONT??
;				26600	CC	IF(R5.NE.99)GO TO 1
	SKIPN .COMM.+6;IF TOP NUM.=0 SKIP OVER
	JRST SINGLE
      	MOVSI 	02,207550    ;	26700	      IF(R5.LT.90)GO TO 3
      	CAMLE 	02,.COMM.+6    
      	JRST  	MT3    ;  99 AS METER = 'C'  98=ALLA BREVE (CUT TIME)
;				26900	      M=-1
      	SETOM 	M     ;		27000	      IF(R5.NE.98)GO TO 4
      	MOVSI 	02,207610
      	CAME  	02,.COMM.+6    
      	JRST  	MT4    ;	27100	C NEXT FOR LINE THROUGH C.
;				27200	      RZ=R6
;;    	MOVE  	02,.COMM.+7    
;;    	MOVEM 	02,RZ#   
;				27300	      RY=R4
;;    	MOVE  	02,.COMM.+5    
;;    	MOVEM 	02,RY    
      	MOVE  	02,POSI+=9   ;	27400	      RA=POS
      	MOVEM 	02,RA#   ;	27500	      R6=RX3
      	MOVE  	02,.COMM.+=23   
      	MOVEM 	02,.COMM.+7    ;27600	C  TO LINE UP WITH R3
      	MOVEI 	02,2     ;	27700	      J10=2
      	MOVEM 	02,.COMM.+=31   ;          FOR THICK LINE
;				27810	CC	R5=9.8+R4
      	MOVN  	02,[3.8]   ;	28000	      R4=R4-3.8
      	FADRB	02,.COMM.+5    ;28050	      R5=R4+5.6
      	FADR  	02,[5.6]
      	MOVEM 	02,.COMM.+6    ;28100	      J7=0
      	SETZM 	.COMM.+=28;	28200	      R8=0
      	SETZM 	.COMM.+=9  ;	28300	      CALL ITMSUB
      	JSA   	16,ITMSUB  ;	28400	      POS=RA
      	MOVE  	02,RA    
      	MOVEM 	02,POSI+=9   ;	28500	      R4=RY
     	MOVE  	02,RY    
      	MOVEM 	02,.COMM.+5    ;28600	      R6=RZ
      	MOVE  	02,RR6   
      	MOVEM 	02,.COMM.+7    ; GET BACK THE RIGHT PARAMS.
MT4:   	MOVE  	02,[9999.0]   ;	28900	4     R5=9999.
      	MOVEM 	02,.COMM.+6    ;29100	C  TO CENTER 12S AND 16S
MT3:   	JSA   	16,MAKNUM    ;	29200	3     CALL MAKNUM(R5)
      	JUMP  .COMM.+6    ;29300	      IF(M)RETURN
      	SKIPGE	M    
	JRST MT5
SINGLE:	SETOM 	M     	;	29500	      M=-1
;  STICK AROUND FOR BOTTOM NUM
      	MOVE  	02,RR6   ;	29700	      R6=RR6
      	MOVEM 	02,.COMM.+7    ;29600	      R4=RY-4.*RR6
      	FSC   	02,2
      	FSBR  	02,RY    
      	MOVNM 	02,.COMM.+5    ;29800	      R5=RW
    	MOVE  	1,RW#   
      	MOVEM 	1,.COMM.+6    ;29900	C  GET BOTTOM NUM
      	MOVE  	02,JZ        ;	30000	      J3=JZ
      	MOVEM 	02,.COMM.+=24    ;30100	      R8=0
      	SETZM 	.COMM.+=9   ;	30200	      GO TO 2
      	JUMPG 	1,MT2		;30300	      END
MT5:	SKIPL KSIG	; SKIP IF DOUBLE METER
	JRA 16,(16)     
	SETZM KSIG
	MOVE RD4	;GET BACK VERT POS.
	FADR [4.0]	; ADD FOR + SIGN
	MOVEM .COMM.+5	;PUT IT R4
	MOVE .COMM.+=10		;RX=R9
	MOVEM RX
	MOVE RD7		;R6=R7   SIZE
	MOVEM .COMM.+7
	MOVEM .COMM.+8
	SETZM .COMM.+=10	;R9=0
	SETZM .COMM.+=9		;R8=0
	MOVEI =9		;JA=9
	MOVEM .COMM.+1
	MOVEI =14		;J5=14
	MOVEM .COMM.+=26
	MOVE [45.0]
	FMPR STF+=8		;*RSTJ2
	FMPR RD7		;*SIZE
	FADR CENTD   		;ADD TO 'CENTR'
	MOVEM .COMM.+2		; CENTR
	MOVE METR2		;MOVE TO RIGHT 25 BASIC NOTCHES
	FMPR STF+=8		;*RSTJ2
	FMPR RD7
	KIFIX
	ADDB JZ			;SHIFT FOR SECOND METER
	MOVEM .COMM.+=24	;PUT IT IN J3
	MOVE PLUS 		;SHIFT + 10 NOTCHES TO RIGHT OF ORIG.
	FMPR STF+=8		;*RSTJ2
	FMPR RD7		;*SIZE
	FADR RD3     		;+ ORIGINAL CONTENTS OF R3
	MOVEM .COMM.+4		;ADJUST R3
	JSA 16,NOTWRT		;GO MAKE A +
	MOVE RD4		;GET BACK BASIC R4
	MOVEM .COMM.+5
	MOVE RD8		;PUT RD8 AND RX INTO R5 AND R6
	MOVEM .COMM.+6
	MOVE 2,RX
	MOVEM 2,.COMM.+7
	MOVE RD7		;GET BACK SIZE
	MOVEM .COMM.+8		;PUT IT IN R7
	MOVE [20.0]		;SHIFT MORE TO RIGHT
	CAML 2,[10.0]		;ADD MORE SPACE IF BOT. # >10
	FADR [5.0]
	FMPR STF+=8		;*RSTJ2
	FMPR RD7
	KIFIX
	ADDB JZ
	MOVEM .COMM.+=24	;NEW POS IN J3
	JRST MT1


MAKNUM:	0			; SUBROUTINE MAKNUM(RNUM)
;100	      COMMON R2,JA,CENTR,J2,RJQ(20),JQ(20)/STF/RSTFAC(-3/4),RSTJ2
;200	      EQUIVALENCE (J3,JQ(1)),(R4,RJQ(2)),(R8,RJQ(6)),(R7,RJQ(5))
;300	     1,(R6,RJQ(4)),(R5,RJQ(3)),(R7,RJQ(5)),(JQ(15),B),(JQ(16),C)
;400	     1 ,(J8,JQ(6)),(J10,JQ(8)),(R3,RJQ(1)),(J5,JQ(3)),(RJY,JQ(19))
;500	     1 ,(J7,JQ(5)),(J6,JQ(4)),(R9,RJQ(7))
;600	      DATA RS/10.0/,RBX/1.0/
	MOVE 11,@(16)	 ;GET RNUM (KEEP 11 CLEAN IN OTHER ROUTINES)
      	MOVE  	02,.COMM.+=9    ;     RB8=R8
      	MOVEM 	02,RB8#
      	MOVE  	02,.COMM.+=24    ;	      J3X=J3
      	MOVEM 	02,J3X# 	; P7=0=BDR40; =1=BDI40; =2=PRIM.
      	JSA   	16,NOZERO 	;      CALL NOZERO(R6)
      	JUMP .COMM.+7
      	MOVE  	02,.COMM.+7     ;	      R5=R6
      	MOVEM 	02,.COMM.+6    ;	UPPER CASE - BDR40
      	MOVSI 	02,206620 	;      R6=48000000.0+(R7+50.)*10000.
      	FADR  	02,.COMM.+=8    
      	FMPR  	02,[10000.0]
      	FADR  	02,[48000000.0]
      	MOVEM 	02,.COMM.+7    
      	MOVE  	02,[99999999.0]      ;	      R7=99999999.0
      	MOVEM 	02,.COMM.+=8    
;	32500	C  BLANKS
;	32700	      IF(RNUM.NE.9999.)GO TO 2
      	CAME  	11,[9999.0]
      	JRST  	MN2    
;	32800	C  NEXT FOR 'C'OMMON TIME
;	32900	      RNUM=12.
      	MOVSI 	11,204600
;	33000	C  MAKES A 'C'
;	33100	      R4=R4-2.2
      	MOVN  	02,[2.2]
      	FADRM 	02,.COMM.+5    ;33200	C  .2 FOR BAD POS. OF LETTERS
      	JRST  	MN4    ;	33300	      GO TO 4
MN2:   	SETZM 	ONE#  ;	33500	2     ONE=0
	KIFIX 11,11	      ;	33600	      RNUM=IFIX(RNUM)
;;    	JSA   	16,IFIX  
;;    	JUMP   	11  
;;    	MOVEM 	11
	FLTR 11,11		;TLC 11,232000
;;	FADR 11,11
;	33700	C  SO MISTAKES (I.E. 2.2) WON'T BREAK THE PROG.
;	33800	      IF(RNUM.EQ.1.)ONE=3.
	CAME 11,[1.0]
      	JRST .+3      
      	MOVSI 	02,202600
      	MOVEM 	02,ONE   
	CAMLE 11,[9.0] ;33900	      IF(RNUM.GT.9.)GO TO 3
      	JRST  	MN3    ;34000	C  JUMP FOR 2 OR 3 DIGIT NUMBER
;	34100	4     R6=R6+RNUM*100.+47.
;;MN4:   	MOVSI 	02,206570
MN4:  	MOVSI 	03,207620
      	FMPR  	03,11  
      	FADR  	3,[47.0]
      	FADRM 	3,.COMM.+7    ;	34200	C  PUTS BLANK ON END (.47)
      	JRST  	MN1    ;	34300	      GO TO 1
;	34500	3     RJY=10.
MN3:   	MOVSI 	3,204500	; 3 NOW HAS RJY
;;    	MOVEM 	02,RJY#  
	CAML 11,[100.0]	    ;	34600	      IF(RNUM.GE.100.)RJY=100.
      	MOVSI 	3,207620
;;    	MOVEM 	03,RJY#
;	34700	      B=IFIX(RNUM/RJY)
      	MOVE  	02,11  
;;    	FDVR  	02,RJY   
	FDVR 2,3
      	KIFIX 2,2		;JSA   	16,IFIX  
				;     	JUMP   	2
;;    	MOVEM 	B
;;    	JSA   	16,FLOAT 
;;    	JUMP   	B#
	FLTR 2,2		;TLC 0,232000
;;	FADR 0,0
      	MOVEM 	2,B     
;	34800	      C=AMOD(RNUM,RJY)
      	JSA   	16,AMOD  
      	JUMP   	11  
      	JUMP   	3   
      	MOVEM 	C#    
;	34900	      IF(RNUM.LT.100)GO TO 7
	CAMGE 11,[100.0]
      	JRST  	MN7    
;	35000	      D=IFIX(C/10.)
      	MOVE  	02,C     
      	FDVR  	02,[10.0]
      	KIFIX 2,2	;JSA   	16,IFIX  
			;;    	JUMP 2
;;    	MOVEM D
;;    	JSA   	16,FLOAT 
;;    	JUMP D
	FLTR 2,2		;TLC 0,232000
				;	FADR 0,0
      	MOVEM 2,D#
;	35100	      C=AMOD(C,10.)
      	JSA   	16,AMOD  
      	JUMP   	C     
      	JUMP   	[10.0]
      	MOVEM 	C     
;	35200	      IF(C.EQ.1.)ONE=ONE+3.
	CAME [1.0]
      	JRST  	.+3   
      	MOVSI 	02,202600
      	FADRM 	02,ONE   
;	35300	      R7=C*1000000.+999999.0
      	FMPR  	0,[1000000.0]
      	FADR  	0,[999999.0]
      	MOVEM 	0,.COMM.+=8    
;	35400	      C=D
      	MOVE  	02,D     
      	MOVEM 	02,C     
;	35500	7     R6=R6+B*100.+C
;;MN7:  	MOVE  	02,.COMM.+7    
;;    	FADR  	02,C     
MN7:  	MOVSI 	03,207620
      	FMPR  	03,B#
      	FADR  	3,C
      	FADRM 	3,.COMM.+7    
;	35600	      IF(B.EQ.1.)ONE=ONE+3.
      	MOVSI 	02,201400
      	CAME  	02,B     
      	JRST  	.+3   
      	MOVSI 	3,202600
      	FADRM 	3,ONE   
;		35700	      IF(C.EQ.1.)ONE=ONE+3.
      	CAME  	02,C     
	JRST .+3
      	MOVSI 	02,202600
      	FADRM 	02,ONE   
;	35800	      B=R5
      	MOVE  	02,.COMM.+6    
      	MOVEM 	02,B     
;	35900	      IF(RNUM.GE.100.)B=B*2
	CAMGE 11,[100.0]
	JRST .+3
      	MOVSI 	02,202400
      	FMPRB 	02,B     
;	36000	      J3=J3-RS*RSTJ2*B
      	FMPR  	02,[10.0]
      	FMPR  	02,STF+=8 
      	KIFIX 2,2		;JSA   	16,IFIX  	
				;     	JUMP   	2
	SUB 2,.COMM.+=24
      	MOVNM 	2,.COMM.+=24
;	36100	C  FOR 2 DIGIT NUMBER
;	36600	C  ADJUSTS FOR 11, ETC.
;	36900	1     J3=J3+ONE*R5*RSTJ2
MN1:   	MOVE  	02,.COMM.+6    
      	FMPR  	02,ONE   
      	FMPR  	02,STF+=8 
      	KIFIX 2,2		;JSA   	16,IFIX  
	ADDM 2,.COMM.+=24   ;	37000	C CENTERS THE NUMBER '1'
	MOVEM 11,RNUM#		;37100	      CALL ALPHA
	MOVE 2,NFONT
	MOVEM 2,TMPF#
      	JSA   	16,ALPHA ;	37200	      J3=J3X
	MOVE 2,TMPF
	MOVEM 2,NFONT		;RESTORE FONT TO WHATEVER IT WAS BEFORE
      	MOVE  	02,J3X#
      	MOVEM 	02,.COMM.+=24    
	SKIPN RB8   ;	37300	      IF(RB8.EQ.0)RETURN
	JRA 16,1(16)   ;37400	C NEXT FOR CIRCLES AND BOXES AROUND NUMBERS.
	FLTR 3,.COMM.+=24	;MOVE 3,.COMM.+=24  37500   R3=J3-R5
      	FSBR  3,.COMM.+6
      	MOVEM 3,.COMM.+4
      	SKIPE .COMM.+=31       ;37600	      IF(J10.EQ.0)J10=1
	JRST .+3
      	MOVEI 	02,1
      	MOVEM 	02,.COMM.+=31   ;USE J10 FOR EVEN THICKER BOX AND CIRC.
;	37800	      IF(RNUM.GT.9)R3=R3+R5*RBX
	MOVE 11,RNUM	;GET BACK RNUM (11 WIPED OUT WHEN PLOTTING)
	CAMG 11,[9.0]
	JRST .+4
      	MOVSI 	02,201400
      	FMPR  	02,.COMM.+6    
      	FADRM 	02,.COMM.+4    
;	37900	C  TO SET CENTER      IF(RB8.EQ.2)GO TO 5
      	MOVSI 	02,202400
      	CAMN  	02,RB8   
      	JRST  	MN5    
      	MOVE  	02,[0.05] 	;38100	      R4=R4+R5+.1+.05/R5
      	FDVR  	02,.COMM.+6    
	FADR 2,[0.1]
      	FADR  	02,.COMM.+6
      	FADRM 	02,.COMM.+5    
;	38200	C  END OF ABOVE IS FOR SMALL CIRCLES.
      	MOVSI 	02,203440 	;38300	      B=4.5
;;    	MOVEM 	02,B     
;	38400	      IF(RNUM.GE.100.)B=5.5
	CAML 11,[100.0]
;;    	CAMLE 	02,11  
;;    	JRST  	.+3   
      	MOVSI 	02,203540
;;    	MOVEM 	02,B     
;;    	MOVE  	02,B     
      	FMPRM 	02,.COMM.+6    ;38500	      R5=R5*B
;;    	MOVEI 	02,14  ;38600	      JA=12
;;    	MOVEM 	02,.COMM.+1
      	SETZM 	.COMM.+=27    ;	38700	      J6=0
      	SETZM 	.COMM.+=28    ;	38800	      J7=0
      	MOVE  	02,.COMM.+=31   ;38900	      J8=J10
      	MOVEM 	02,.COMM.+=29 	;39000	      CALL CENTX
      	JSA   	16,CENTX 
      	JSA   	16,CIRCLE	;39100	      CALL SLUR
	JRA 16,1(16)		;39200	      RETURN
;;MN5:   	MOVEI 	02,4   ;39400	5     JA=4
;;    	MOVEM 	02,.COMM.+1
MN5:  	MOVSI 	02,203600	;39500	      B=6
;;    	MOVEM 	02,B     
;	39600	      R9=0
      	SETZM 	.COMM.+=10   ;	39700	      IF(RNUM.LT.100.)GO TO 8
	CAMGE 11,[100.0]
      	JRST  	MN8    	;	39800	      B=9.
      	MOVSI 	02,204440
;;    	MOVEM 	02,B     
      	MOVSI 	1,203600   ;	39900	      R9=R5*6.
      	FMPR  	1,.COMM.+6    
      	MOVEM 	1,.COMM.+=10    ;40000	C  MAKES RECTANGLE IF ↑100
MN8:  	MOVE  	03,[0.7]    ;	40100	8     R4=R4+R5*.7+.1
      	FMPR  	03,.COMM.+6    
	FADR 3,[0.1]
	FADRM 3,.COMM.+5    ;	40200	      R8=R5*B
;;    	MOVE  	02,.COMM.+6    
;;    	FMPR  	02,B     
	FMPR 2,.COMM.+6
      	MOVEM 	02,.COMM.+=9    ;40300	      J5=50
      	MOVEI 	02,62
      	MOVEM 	02,.COMM.+=26  ;40400	      CALL ITMSUB
      	JSA   	16,ITMSUB   ;	40500	C  RETURNS ORIG. HORIZ. POS.
	JRA 16,1(16)		;40600	      END
	END